class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
            //旋转图像 就是第一行变成最后一列 
            //难点在于 怎么不影响其他顺序的前提下转换
            //不能使用额外的数组
            //先倒序一遍
            int row,col;
            row = col  = matrix[0].size();
            for(int i = 0;i < matrix[0].size();++i)
            {
                for(int j = 0;j <matrix[0].size()/2;++j)
                {
                    swap(matrix[i][j],matrix[i][matrix[0].size()-j-1]);
                }
            }
            int n = col;
            //倒序之后再一层一层的交换
               for (int i = 0; i < n; ++i) {
                for (int j = 0; j < n - i - 1; ++j) {
                std::swap(matrix[i][j], matrix[n - j - 1][n - i - 1]);
        }
    }
    }
};
